package com.api.dispose.enums;

import lombok.Getter;

import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author 李大牛家的牛 (scafel@163.com)
 * @createDate 2025/5/20-14:53
 * @description ToDo...
 **/
@Getter
public enum ConfigGroupEnums {
    DEFAULT("DEFAULT", "基础配置"),
    ;

    private static final Map<String, ConfigGroupEnums> codeToEnumMap = new ConcurrentHashMap<>();
    private static final ArrayList<EnumMap> enumMap = new ArrayList<>();

    static {
        for (ConfigGroupEnums type : ConfigGroupEnums.values()) {
            codeToEnumMap.put(type.getCode(), type);
            EnumMap map = new EnumMap();
            map.setValue(type.getCode());
            map.setLabel(type.getMessage());
            enumMap.add(map);
        }
    }

    private final String code;
    /**
     * 自定义描述
     **/
    private final String message;

    ConfigGroupEnums(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public static ConfigGroupEnums getType(String code) {
        ConfigGroupEnums type = codeToEnumMap.get(code);
        if (type == null) {
            return ConfigGroupEnums.DEFAULT;
        }
        return type;
    }

    /**
     * 获取枚举类中所有的枚举值
     * @return Map
     */
    public static ArrayList<EnumMap> getEnumsMap() {
        return enumMap;
    }

}
